<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            float: left;
            margin: 10px;
            cursor: pointer;
        }
        #div1{
            width: 50px;
            height: 50px;
            background: lightblue;
        }
        #div2{
            width: 200px;
            height: 200px;
            background: #cccccc;
            display: none;
        }
    </style>
    <script type="text/javascript">
        window.onload = function () {
            var oDiv1 = document.getElementById('div1');
            var oDiv2 = document.getElementById('div2');
            var timer = null;

            oDiv2.onmouseover=oDiv1.onmouseover = function () {
                clearTimeout(timer);
                oDiv2.style.display = 'block';
            }
            oDiv1.onmouseout = function () {
               timer =  setTimeout(function () {
                    oDiv2.style.display = 'none';
                },500)

            }
           /* oDiv2.onmouseover = function () {
                oDiv2.style.display = 'block';
                clearTimeout(timer);
            }*/
            oDiv2.onmouseout = function () {
                timer = setTimeout(function () {
                    oDiv2.style.display = 'none';
                },500)
            }
        }
    </script>
</head>
<body>
<div id="div1"></div>
<div id="div2"></div>
</body>
</html>